#ifndef __MARS_GP_GPMGR_H__
#define __MARS_GP_GPMGR_H__

#include "MarsObject.h"
#include "MarsSingleton.h"

using namespace Core;

namespace GP
{

enum GPTech
{
	GPTech_OpenCL					= 0,
	GPTech_CUDA						= 1,
};

class GPMgr : public Object, public Singleton< GPMgr >
{
public:
	bool							Initialize();
	void							Shutdown();

	void							SetCurrentGPTech( GPTech eGPTech );

private:
									GPMgr();
									~GPMgr();

									MARS_NO_INIT_ASSIGNMENT( GPMgr );

	friend class Singleton< GPMgr >;

	GPTech							m_eGPTech;
};

} // end of namespace GP

#endif // end of #ifndef __MARS_GP_GPMGR_H__